let express = require('express')
let app = express()

// 方式一
// const cors = require('cors');
// app.use(cors());

// 方式二
let whitList = ['http://localhost:3000', 'http://127.0.0.1:3000/'] //白名单
// 通过中间件来设置是否可以跨域
app.use(function (req, res, next) {
  let origin = req.headers.origin
  if (whitList.includes(origin)) {
    // 设置哪个源可以访问
    res.setHeader('Access-Control-Allow-Origin', origin)
    // 允许携带哪个请求头可以访问
    res.setHeader('Access-Control-Allow-Headers', 'name')
    // 允许哪个方法可访问
    res.setHeader('Access-Control-Allow-Methods', 'PUT')
    // 允许携带cookie访问
    res.setHeader('Access-Control-Allow-Credentials', true)
    // 预检的存活时间
    res.setHeader('Access-Control-Max-Age', 6000)
    // 允许前端获取哪个请求头
    res.setHeader('Access-Control-Expose-Headers', 'name') // cookie跨域
    if (req.method === 'OPTIONS') {
      res.end()// PUT请求不作任何处理
    }
  }
  next()
})

app.get('/getData', (req, res) => {
  res.end('i love you')
  // 当跨域请求时，浏览器拦截后，其实后台是可以监测到的
  // console.log(req.headers) 
})
app.put('/getData', (req, res) => {
  res.setHeader('name','jw')
  res.end('i love you')
  // 当跨域请求时，浏览器拦截后，其实后台是可以监测到的
  console.log(req.headers)
})
app.use(express.static(__dirname))

app.listen(5000)